1) Zmenšíme kružnici m o poloměr r_n, posuneme přímku p o r_n, tím nám vzniknou dvě příkmky, pro obě bude následující postup stejný.

2) Z bodu N vedem tečnu ke kružnici c (libovolnou) a bod dotyku nazvem T_t.

3) Kružnice k(N, |NT_t|)

4) Přímku p zobrazíme v kruhové inverzi s řídící kružnicí k.

5) nalezneme tečny kružnic e a p'_1. Využijeme poze vzdálenější tečnu od přímky p, protože ta nám určuje vnější kružnici, kterou hledáme. Vnitřni kružnici nenalezneme žádnou.

6) Body dotyku T_e, a T_p spojíme s N. Průsečík vzniklé přímky t_e kružnice e nazvem T_{e2} a průsečík vzniklé t_p a prímky p' nazveme T_{p2}

7) Opíšeme kružnici trojúhelníku T_{p2}T_{e2}N.

8) Zmenšíme kružnici l_1 o poloměr r_n. Vznike nám tak kružnice v_1 a z posunutí na druhou stranu v_2

Řešení s použitím dilatace

Mějme kružnice m,n, ketré se protínají v bodech P,Q.
\Bodem Q prochází přímka p. Nalezni všechny kružnice, 
\které se dotýkají kružnic m,n a přímky p.

Řešení

Zadání

M = (1.977793587025092, -0.7325000264193134)
m = Circle(M, 5)
N = (8.670984676831521, -2.482172385995283)
n = Circle(N, 3)
P = Intersect(m, n, 1)
Q = Intersect(m, n, 2)
C = (-3.7989024572891714, -7.120192767728412)
p = Line(Q, C)
r_m = Segment(M, P)
r_n = Segment(N, Q)
A = Point(p)
e = Circle(M, r_m - r_n)
B = Point(p)
f = OrthogonalLine(B, p)
d = Circle(B, r_n)
D = Intersect(d, f, 2)
p' = Line(D, p)
h, t_t = Tangent(N, e)
T_t = Intersect(e, t_t, 1)
k = Circle(N, T_t)
p'_1 = Mirror(p', k)
t_1, t_2, j, k_1 = Tangent(e, p'_1)
T_e = Intersect(e, t_2, 1)
T_p = Intersect(p'_1, t_2, 1)
t_p = Line(T_p, N)
T_{p2} = Intersect(p', t_p)
t_e = Line(T_e, N)
E, T_{e2} = Intersect(e, t_e)
l_1 = Circle(T_{e2}, T_{p2}, N)
V_1 = Center(l_1)
r_{l1} = Segment(V_1, T_{p2})
v_1 = Circle(V_1, r_{l1} - r_n)
a = false
b = false
c = false
i = false
g = false
l = false
o = false
F = Intersect(d, f, 1)
q = Line(F, p)
q' = Mirror(q, k)
r, s = Tangent(q', e)
G = Intersect(e, r)
H = Intersect(q', r)
I = Intersect(e, s)
J = Intersect(q', s)
t = Line(G, N)
f_1 = Line(H, N)
K, L = Intersect(e, t)
O = Intersect(f_1, q)
l_2 = Circle(O, L, N)
V_2 = Center(l_2)
r_{l2} = Segment(V_2, O)
v_2 = Circle(V_2, r_{l2} - r_n)
u = false
v = false
w = true
a_1 = true